home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
CD ROM Paradise Collection 4
/
CD ROM Paradise Collection 4 1995 Nov.iso
/
program
/
swagd_f.zip
/
EXEC.SWG
/
0028_Finding the end of EXE.pas
< prev
next >
Wrap
Pascal/Delphi Source File
|
1995-03-03
|
1KB
|
45 lines
{ could be used to append data to the end of an EXE file }
Unit ExeEnd;
Interface
Uses Dos;
Var EndOfExe, SizeOfData: LongInt;
Data: Boolean;
Function GetExeInfo(Const Name: PathStr; var Data: Boolean; var EndOfExe,
SizeOfData: LongInt): Boolean;
Implementation
Function GetExeInfo(Const Name: PathStr; var Data: Boolean; var EndOfExe,
SizeOfData: LongInt): Boolean;
Const CorrectExe=$5A4D; {'MZ'}
Var Header: Array[1..3] of Word; {ID, ByteMod, Pages}
F: File;
ReadIn: Word;
Begin
Data:=False;
EndOfExe:=0;
SizeOfData:=0;
If Name='.' then Exit;
Assign(F, Name);
{$I-} Reset(F, 1); {$I+}
If IOResult=0 then Begin
BlockRead(F, Header, SizeOf(Header), ReadIn);
If (ReadIn=SizeOf(Header)) and (Header[1]=CorrectExe) then
EndOfExe:=LongInt(Header[3]-1)*512+Header[2];
SizeOfData:=FileSize(F)-EndOfExe;
Close(F);
Data:=SizeOfData>0;
GetExeInfo:=True;
End Else GetExeInfo:=False;
End;
Begin
If Lo(DosVersion)>=3 then GetExeInfo(ParamStr(0), Data, EndOfExe,
SizeOfData) Else GetExeInfo('.', Data, EndOfExe, SizeOfData);
End.